﻿using System.Threading.Tasks;

namespace Sidvall.Security
{
	public interface IAuthenticationProvider
	{
		IAuthenticationClient GetAuthenticationClient(System.Uri address, string clientId, string clientSecret, ClientAuthenticationStyle authenticationStyle);
		Task<UserInfo> GetUserInfoAsync(string authorityUserInfoEndpoint, string accessToken);

		AuthorizeResponse ParseAuthorizeResponseFromAddress(string address);
		IdentityToken ParseIdentityTokenFromToken(string token);
	}
}
